package com.nas.crocus.dao.impl;

import java.util.Collection;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.nas.crocus.dao.RutaDao;
import com.nas.crocus.domain.Ruta;

@Repository
public class RutaDaoImp implements RutaDao{

    @Autowired
    private SessionFactory sessionFactory;
    
    @Override
    public Ruta buscar(Long alojamientoId) {
        return (Ruta) sessionFactory.getCurrentSession().get(Ruta.class,
                alojamientoId);
    }

    @Override
    public Collection<Ruta> buscar() {
        Session session = sessionFactory.getCurrentSession();        
        return session.createCriteria(Ruta.class).list();
    }

    @Override
    public void guardar(Ruta ruta) {
        sessionFactory.getCurrentSession().save(ruta);  
        
    }

    @Override
    public void actualizar(Ruta ruta) {
        sessionFactory.getCurrentSession().update(ruta);  
    }
    
    @Override
    public void eliminar(Ruta ruta) {
        sessionFactory.getCurrentSession().delete(ruta);
    }

    @Override
    public Ruta buscarPorEventoId(Long eventoId) {
        Session session = sessionFactory.getCurrentSession();        
        Criteria crit=session.createCriteria(Ruta.class);
        crit.add(Restrictions.eq("evento.id",eventoId));
        
        return (Ruta) crit.uniqueResult();
    }

}
